/////////////////////////////////////////////////////////////////////////////
// This file is part of the "Java-DAP" project, a Java implementation
// of the OPeNDAP Data Access Protocol.
//
// Copyright (c) 2007 OPeNDAP, Inc.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
/////////////////////////////////////////////////////////////////////////////
using System;
using NDODS.DAP.BaseTypes;

namespace NDODS.DAP
{
    /// <summary> The default client-side Factory for BaseType objects.
    /// 
    /// </summary>
    /// <author>  jehamby
    /// </author>
    /// <version>  $Revision: 15901 $
    /// </version>
    /// <seealso cref="IBaseTypeFactory">
    /// </seealso>
    [Serializable]
    public class DefaultFactory : IBaseTypeFactory
    {
        internal const long serialVersionUID = 1;


        //..................................

        /// <summary> Construct a new DByte.
        /// 
        /// </summary>
        /// <returns> the new DByte
        /// </returns>
        public virtual DByte newDByte() {
            return new DByte();
        }

        /// <summary> Construct a new DByte with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DByte
        /// </returns>
        public virtual DByte newDByte(String n) {
            return new DByte(n);
        }

        //..................................

        /// <summary> Construct a new DInt16.
        /// 
        /// </summary>
        /// <returns> the new DInt16
        /// </returns>
        public virtual DInt16 newDInt16() {
            return new DInt16();
        }

        /// <summary> Construct a new DInt16 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DInt16
        /// </returns>
        public virtual DInt16 newDInt16(String n) {
            return new DInt16(n);
        }

        //..................................

        /// <summary> Construct a new DUInt16.
        /// 
        /// </summary>
        /// <returns> the new DUInt16
        /// </returns>
        public virtual DUInt16 newDUInt16() {
            return new DUInt16();
        }

        /// <summary> Construct a new DUInt16 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DUInt16
        /// </returns>
        public virtual DUInt16 newDUInt16(String n) {
            return new DUInt16(n);
        }

        //..................................

        /// <summary> Construct a new DInt32.
        /// 
        /// </summary>
        /// <returns> the new DInt32
        /// </returns>
        public virtual DInt32 newDInt32() {
            return new DInt32();
        }

        /// <summary> Construct a new DInt32 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DInt32
        /// </returns>
        public virtual DInt32 newDInt32(String n) {
            return new DInt32(n);
        }

        //..................................

        /// <summary> Construct a new DUInt32.
        /// 
        /// </summary>
        /// <returns> the new DUInt32
        /// </returns>
        public virtual DUInt32 newDUInt32() {
            return new DUInt32();
        }

        /// <summary> Construct a new DUInt32 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DUInt32
        /// </returns>
        public virtual DUInt32 newDUInt32(String n) {
            return new DUInt32(n);
        }

        //..................................

        /// <summary> Construct a new DFloat32.
        /// 
        /// </summary>
        /// <returns> the new DFloat32
        /// </returns>
        public virtual DFloat32 newDFloat32() {
            return new DFloat32();
        }

        /// <summary> Construct a new DFloat32 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DFloat32
        /// </returns>
        public virtual DFloat32 newDFloat32(String n) {
            return new DFloat32(n);
        }

        //..................................

        /// <summary> Construct a new DFloat64.
        /// 
        /// </summary>
        /// <returns> the new DFloat64
        /// </returns>
        public virtual DFloat64 newDFloat64() {
            return new DFloat64();
        }

        /// <summary> Construct a new DFloat64 with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DFloat64
        /// </returns>
        public virtual DFloat64 newDFloat64(String n) {
            return new DFloat64(n);
        }

        //..................................

        /// <summary> Construct a new DString.
        /// 
        /// </summary>
        /// <returns> the new DString
        /// </returns>
        public virtual DString newDString() {
            return new DString();
        }

        /// <summary> Construct a new DString with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DString
        /// </returns>
        public virtual DString newDString(String n) {
            return new DString(n);
        }

        //..................................

        /// <summary> Construct a new DURL.
        /// 
        /// </summary>
        /// <returns> the new DURL
        /// </returns>
        public virtual DURL newDURL() {
            return new DURL();
        }

        /// <summary> Construct a new DURL with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DURL
        /// </returns>
        public virtual DURL newDURL(String n) {
            return new DURL(n);
        }

        //..................................

        /// <summary> Construct a new DArray.
        /// 
        /// </summary>
        /// <returns> the new DArray
        /// </returns>
        public virtual DArray newDArray() {
            return new DArray();
        }

        /// <summary> Construct a new DArray with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DArray
        /// </returns>
        public virtual DArray newDArray(String n) {
            return new DArray(n);
        }

        //..................................


        /// <summary> Construct a new DGrid.
        /// 
        /// </summary>
        /// <returns> the new DGrid
        /// </returns>
        public virtual DGrid newDGrid() {
            return new DGrid();
        }

        /// <summary> Construct a new DGrid with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DGrid
        /// </returns>
        public virtual DGrid newDGrid(String n) {
            return new DGrid(n);
        }

        //..................................

        /// <summary> Construct a new DStructure.
        /// 
        /// </summary>
        /// <returns> the new DStructure
        /// </returns>
        public virtual DStructure newDStructure() {
            return new DStructure();
        }

        /// <summary> Construct a new DStructure with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DStructure
        /// </returns>
        public virtual DStructure newDStructure(String n) {
            return new DStructure(n);
        }

        //..................................

        /// <summary> Construct a new DSequence.
        /// 
        /// </summary>
        /// <returns> the new DSequence
        /// </returns>
        public virtual DSequence newDSequence() {
            return new DSequence();
        }

        /// <summary> Construct a new DSequence with name n.
        /// 
        /// </summary>
        /// <param name="n">the variable name
        /// </param>
        /// <returns> the new DSequence
        /// </returns>
        public virtual DSequence newDSequence(String n) {
            return new DSequence(n);
        }
    }
}